package com.fdb.efp.nls.service.impl;

import com.fdb.basic.framework.core.base.FrameworkService;
import com.fdb.efp.nls.service.dao.ColltTaskRcdDao;
import com.fdb.efp.nls.service.domain.ColltTaskRcd;
import com.fdb.efp.nls.service.facade.ColltTaskRcdService;
import com.fdb.efp.nls.service.vo.ColltTaskRcdVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Objects;


/**
 * Service Impl: 催收任务记录表服务实现
 * @author ligm
 * @date 2019-08-27 
 */
@Service("colltTaskRcdService")
public class ColltTaskRcdServiceImpl implements ColltTaskRcdService, FrameworkService {
	
	private static Logger logger = LoggerFactory.getLogger(ColltTaskRcdServiceImpl.class);

	@Autowired
	private ColltTaskRcdDao colltTaskRcdDao;

	@Autowired
	@Qualifier("colltTaskRcdService")
	private ColltTaskRcdService colltTaskRcdService;


   	/**
	 * 新增数据 
     * @param inColltTaskRcdVo
     * @return 
	 */
	public int insertColltTaskRcd(ColltTaskRcdVO inColltTaskRcdVo) {
		logger.debug("当前新增数据为:"+ inColltTaskRcdVo.toString());
		int num = 0;
		try {
			ColltTaskRcd colltTaskRcd = new ColltTaskRcd();
			beanCopy(inColltTaskRcdVo, colltTaskRcd);
			num = colltTaskRcdDao.insertColltTaskRcd(colltTaskRcd);
		} catch (Exception e) {
			logger.error("新增数据发生异常!", e);
			num = -1;
		}
		logger.debug("当前新增数据条数为:"+ num);
		return num;
	}

    /**
	 * 根据主键删除信息 
	 * @param inColltTaskRcdVo
 	 * @return
	 */
	public int deleteByPk(ColltTaskRcdVO inColltTaskRcdVo) {
		logger.debug("当前删除数据条件为:"+ inColltTaskRcdVo);
		int num = 0;
		try {
			ColltTaskRcd colltTaskRcd = new ColltTaskRcd();
			beanCopy(inColltTaskRcdVo, colltTaskRcd);
			num = colltTaskRcdDao.deleteByPk(colltTaskRcd);
		} catch (Exception e) {
			logger.error("删除数据发生异常!", e);
			num = -1;
		}
		logger.debug("根据条件:"+ inColltTaskRcdVo +"删除的数据条数为"+ num);
		return num;
	}


    /**
	 * 根据主键更新信息 
	 * @param inColltTaskRcdVo
	 * @return 
	 */  
	public int updateByPk(ColltTaskRcdVO inColltTaskRcdVo) {
		logger.debug("当前修改数据为:"+ inColltTaskRcdVo.toString());
		int num = 0;
		try {
			ColltTaskRcd colltTaskRcd = new ColltTaskRcd();
			beanCopy(inColltTaskRcdVo, colltTaskRcd);
			num = colltTaskRcdDao.updateByPk(colltTaskRcd);
		} catch (Exception e) {
			logger.error("修改数据发生异常!", e);
			num = -1;
		}
		logger.debug("根据条件:"+ inColltTaskRcdVo +"修改的数据条数为"+ num);
		return num;
	}
	
    /**
	 * 根据主键查询详情 
	 * @param inColltTaskRcdVo
	 * @return 
	 */
	public ColltTaskRcdVO queryByPk(ColltTaskRcdVO inColltTaskRcdVo) {
		
		logger.debug("当前查询参数信息为:"+ inColltTaskRcdVo);
		try {
			ColltTaskRcd queryColltTaskRcd = new ColltTaskRcd();
			beanCopy(inColltTaskRcdVo, queryColltTaskRcd);
			ColltTaskRcd queryRslColltTaskRcd = colltTaskRcdDao.queryByPk(queryColltTaskRcd);
			if (Objects.nonNull(queryRslColltTaskRcd)) {
				ColltTaskRcdVO outColltTaskRcdVo = beanCopy(queryRslColltTaskRcd, new ColltTaskRcdVO());
				logger.debug("当前查询结果为:"+ outColltTaskRcdVo.toString());
				return outColltTaskRcdVo;
			} else {
				logger.debug("当前查询结果为空!");
			}
		} catch (Exception e) {
			logger.error("查询数据发生异常!", e);
		}
		return null;
	}

	/**
	 * TODO: 按催收任务编号查询催收历史记录
	 * @author xiezwn
	 * @params  * @param null
	 * @return
	 * @date 2019/9/3 17:37
	 * @version 0.1
	 */
	public List<ColltTaskRcdVO> queryAllByColltTaskNo(ColltTaskRcdVO colltTaskRcdVo) {
		logger.debug("查询催收记录信息的参数信息为:");
		List<ColltTaskRcd> colltTaskRcds = colltTaskRcdDao.queryAllByColltTaskNoByPage(colltTaskRcdVo);
		logger.debug("查询催收记录信息的结果集数量为:"+ colltTaskRcds.size());
		List<ColltTaskRcdVO> list = null;
		try {
			pageSet(colltTaskRcds, colltTaskRcdVo);
			list = (List<ColltTaskRcdVO>) beansCopy(colltTaskRcds, ColltTaskRcdVO.class);
		} catch (Exception e) {
			logger.error("数据转换出现异常!", e);
		}

		return list;
	}

}
